1. Field of the Invention
This invention relates to electronic devices, and more particularly to a high-speed memory-based buffer, and system and method for use thereof.
2. Description of the Related Art
Semiconductor processing has reached the level of placing tens of millions of transistors on a single integrated circuit or monolithic substrate, also known as a chip. The drive towards miniaturization is evident from recent forecasts from chipmakers towards shrinking transistor size from 0.25 micron down to 0.18 micron and beyond in the next decade. It is anticipated that this trend towards increased miniaturization will continue. This drive towards integration of electronic devices on increasingly complex chips requires increasingly compact designs even for relatively simple electronic devices. A companion concern to size is power consumption, as a high power device compacted into a smaller area may cause heating problems on the chip, as well as the possibility of actually melting the chip during operation.
Hardware buffers are devices that receive bits, store the bits temporarily, and then provide the bits upon request thereof. Buffers are often shared by a number of other devices that operate at different speeds or with different sets of priorities. The buffer allows faster devices to operate on the data stream without being held up by slower devices. Buffers are often categorized by the order in which the buffer provides data as compared to the order in which the data are stored. Examples of buffers include first in, first out buffers, also known as FIFOs; last in, first out buffers, as known as LIFOs or stacks, as well as queues, reorder buffers, reservation stations; etc. Another important factor is the size of the buffer, including the depth (i.e. the number of different data entries which can be stored concurrently) as well as the width (i.e. the number of bits that can be comprised in a single data entry).
Hardware buffers are often comprised of memory cells or registers. Memory cells may be comprised of any type of memory, including random access memory (RAM) in any of its varieties. Some memory types are fast on the write-in to read-out turnaround, having high power consumption and a large footprint, i.e. they require a large number of basic components and therefore a large area of semiconductor on a wafer. Other memory types have low power consumption and take up little space but are relatively slow. Registers usually fall into the same category as fast memory. When a buffer is comprised of registers or fast memory, the depth and width of the buffer is severely constrained due to the power consumption and footprint. When a buffer is comprised of slow memory, the speed of the buffer is severely constrained.
It would be desirable to have a buffer with a small footprint on the chip and low power consumption, yet has a rapid turnaround time for data entries written into it. Preferably, the turnaround time should have no latency, that is, data entries should be accepted into the buffer on each clock cycle until the buffer can no longer accept data entries and data entries should be available to be read out on each clock cycle until the buffer is empty. The buffer should also be relatively deep and wide as a function of the footprint and power consumption.